package cn.iocoder.yudao.module.digital.dal.dataobject.patent;

import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 专利信息 DO
 *
 * @author admin
 */
@TableName("digital_patent")
@KeySequence("digital_patent_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PatentDO extends BaseDO {

    /**
     * 专利主键ID
     */
    @TableId
    private Integer id;
    /**
     * 专利名称
     */
    private String patentName;
    /**
     * 所属单位（如计算机学院）
     *
     * 枚举 {@link TODO Affiliated Unit 对应的类}
     */
    private Integer affiliatedUnit;
    /**
     * 专利类型（发明专利、实用新型、外观设计）
     *
     * 枚举 {@link TODO patent_type 对应的类}
     */
    private Integer patentType;
    /**
     * 专利范围（国内、国外）
     */
    private Integer patentScope;
    /**
     * 专利状态（专利申请、专利公开、专利授权）
     */
    private Integer patentStatus;
    /**
     * 申请号
     */
    private String applicationNumber;
    /**
     * 申请日期
     */
    private LocalDateTime applicationDate;
    /**
     * 公开号
     */
    private String publicationNumber;
    /**
     * 公开日期
     */
    private LocalDateTime publicationDate;
    /**
     * 授权号
     */
    private String authorizationNumber;
    /**
     * 授权日期
     */
    private LocalDateTime authorizationDate;
    /**
     * 申请人
     */
    private String applicant;
    /**
     * 专利权人
     */
    private String patentHolder;
    /**
     * 是否失效（1=是，0=否）
     */
    private Boolean isInvalid;
    /**
     * 合作类型（独立申请、合作申请）
     */
    private Integer cooperationType;
    /**
     * 是否为职务专利（1=是，0=否）
     */
    private Boolean isServicePatent;
    /**
     * 学校署名（第一单位/非第一单位）
     */
    private Integer schoolSignature;
    /**
     * 是否为PCT专利（1=是，0=否）
     */
    private Boolean isPctPatent;
    /**
     * 备注
     */
    private String remark;
    /**
     * 预留字段1
     */
    private String reserved1;
    /**
     * 预留字段2
     */
    private String reserved2;
    /**
     * 预留字段3
     */
    private String reserved3;
    /**
     * 预留字段4
     */
    private String reserved4;
    /**
     * 预留字段5
     */
    private String reserved5;

}